function* foo() {
  console.log('start');
  const aaa = yield 'yield One'; // yiled 后面的值会作为next函数的返回值
  console.log(aaa); // 这里的值是第13行的 666
  const bbb = yield 'yield Two'; // 接受第16行的 888
  console.log(888);
  console.log('end');
}

// 调用时 获得一个生成器对象
const generator = foo();
// next第一次触发 才会真正的开始执行
const a = generator.next(); // 第一次调用next会执行到第一个yield 同时得到yield返回的值
console.log(a); // 'yield One'
const b = generator.next('666'); // 再次调用next 其中的参数可以作为上一次yield的返回值传入函数
// 每个next执行到下一个yield停止
console.log(b); // 'yield One'
generator.next('888');
